package com.lekang.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.lekang.common.annotation.Excel;
import com.lekang.common.core.domain.BaseEntity;

/**
 * 合同对象 contract
 * 
 * @author ruoyi
 * @date 2025-10-13
 */
public class Contract extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 合同名称 */
    @Excel(name = "合同名称")
    private String contractName;

    /** 合同编号 */
    @Excel(name = "合同编号")
    private String contractNo;

    /** 老人外键编号 */
    @Excel(name = "老人外键编号")
    private Long elderlyId;

    /** 合同期限开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同期限开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startDate;

    /** 合同期限结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同期限结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endDate;

    /** 合同状态 */
    @Excel(name = "合同状态")
    private String contractStatus;

    /** 签约时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "签约时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date signTime;

    /** 合同文件 */
    @Excel(name = "合同文件")
    private String contractFile;

    /** 创建人 */
    @Excel(name = "创建人")
    private Long creator;
//    创建时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    @Override
    public Date getCreateTime() {
        return createTime;
    }

    @Override
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    /** 丙方姓名 */
    private String partyCName;

    /** 丙方联系电话 */
    private String partyCPhone;

    /** 解除提交人 */
    private Long terminationSubmitter;

    /** 解除时间 */
    private Date terminationTime;

    /** 解除协议文件 */
    private String terminationAgreement;

    /** 入住管理表外键编号 */
    private Long checkInManagementId;

    /** 额外字段1 */
    private String extraField1;

    /** 额外字段2 */
    private String extraField2;

    private String elderlyName;   // 老人姓名
    private String idCard;        // 老人身份证号
    private String creatorName;   // 创建人姓名
//    创建人get/set方法
    public String getCreatorName() {
        return creatorName;
    }
    public void setCreatorName(String creatorName) {
        this.creatorName = creatorName;
    }

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
//    老人get/set方法

    public String getElderlyName() {
        return elderlyName;
    }
    public void setElderlyName(String elderlyName) {
        this.elderlyName = elderlyName;
    }
    public String getIdCard() {
        return idCard;
    }
    public void setIdCard(String idCard) {
        this.idCard = idCard;
    }

    public void setContractName(String contractName) 
    {
        this.contractName = contractName;
    }

    public String getContractName() 
    {
        return contractName;
    }

    public void setContractNo(String contractNo) 
    {
        this.contractNo = contractNo;
    }

    public String getContractNo() 
    {
        return contractNo;
    }

    public void setElderlyId(Long elderlyId) 
    {
        this.elderlyId = elderlyId;
    }

    public Long getElderlyId() 
    {
        return elderlyId;
    }

    public void setStartDate(Date startDate) 
    {
        this.startDate = startDate;
    }

    public Date getStartDate() 
    {
        return startDate;
    }

    public void setEndDate(Date endDate) 
    {
        this.endDate = endDate;
    }

    public Date getEndDate() 
    {
        return endDate;
    }

    public void setContractStatus(String contractStatus) 
    {
        this.contractStatus = contractStatus;
    }

    public String getContractStatus() 
    {
        return contractStatus;
    }

    public void setSignTime(Date signTime) 
    {
        this.signTime = signTime;
    }

    public Date getSignTime() 
    {
        return signTime;
    }

    public void setContractFile(String contractFile) 
    {
        this.contractFile = contractFile;
    }

    public String getContractFile() 
    {
        return contractFile;
    }

    public void setCreator(Long creator) 
    {
        this.creator = creator;
    }

    public Long getCreator() 
    {
        return creator;
    }

    public void setPartyCName(String partyCName) 
    {
        this.partyCName = partyCName;
    }

    public String getPartyCName() 
    {
        return partyCName;
    }

    public void setPartyCPhone(String partyCPhone) 
    {
        this.partyCPhone = partyCPhone;
    }

    public String getPartyCPhone() 
    {
        return partyCPhone;
    }

    public void setTerminationSubmitter(Long terminationSubmitter) 
    {
        this.terminationSubmitter = terminationSubmitter;
    }

    public Long getTerminationSubmitter() 
    {
        return terminationSubmitter;
    }

    public void setTerminationTime(Date terminationTime) 
    {
        this.terminationTime = terminationTime;
    }

    public Date getTerminationTime() 
    {
        return terminationTime;
    }

    public void setTerminationAgreement(String terminationAgreement) 
    {
        this.terminationAgreement = terminationAgreement;
    }

    public String getTerminationAgreement() 
    {
        return terminationAgreement;
    }

    public void setCheckInManagementId(Long checkInManagementId) 
    {
        this.checkInManagementId = checkInManagementId;
    }

    public Long getCheckInManagementId() 
    {
        return checkInManagementId;
    }

    public void setExtraField1(String extraField1) 
    {
        this.extraField1 = extraField1;
    }

    public String getExtraField1() 
    {
        return extraField1;
    }

    public void setExtraField2(String extraField2) 
    {
        this.extraField2 = extraField2;
    }

    public String getExtraField2() 
    {
        return extraField2;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("contractName", getContractName())
            .append("contractNo", getContractNo())
            .append("elderlyId", getElderlyId())
            .append("startDate", getStartDate())
            .append("endDate", getEndDate())
            .append("contractStatus", getContractStatus())
            .append("signTime", getSignTime())
            .append("contractFile", getContractFile())
            .append("creator", getCreator())
            .append("createTime", getCreateTime())
            .append("partyCName", getPartyCName())
            .append("partyCPhone", getPartyCPhone())
            .append("terminationSubmitter", getTerminationSubmitter())
            .append("terminationTime", getTerminationTime())
            .append("terminationAgreement", getTerminationAgreement())
            .append("checkInManagementId", getCheckInManagementId())
            .append("extraField1", getExtraField1())
            .append("extraField2", getExtraField2())
            .toString();
    }
}
